////////////////////////////////////////////////////////////////////////////////
//
// $Id$ 
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
// 
// This software consists of voluntary contributions is licensed under the 
// MIT <http://www.opensource.org/licenses/mit-license.php>. 
// 
// 
// Portuguese Translation
// 
// ESTE SOFTWARE É FORNECIDO “COMO ESTÁ”, SEM GARANTIAS DE QUALQUER ESPÉCIE, 
// EXPRESSAS OU TÁCITAS, INCLUINDO SEM LIMITAÇÕES, QUAISQUER GARANTIA DE COMERCIABILIDADE, 
// DE ADEQUAÇÃO A FINALIDADES ESPECÍFICAS OU DE NÃO VIOLAÇÃO A DIREITOS DE TERCEIROS. 
// EM NENHUMA HIPÓTESE OS AUTORES OU TITULARES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS 
// POR QUAISQUER RECLAMAÇÕES E/OU INDENIZAÇÕES POR DANOS OU POR OUTROS MOTIVOS, 
// SEJAM ESSES DERIVADOS DE OBRIGAÇÕES CONTRATUAIS OU DE DECISÕES JUDICIAIS, 
// ILÍCITOS CIVIS OU OUTROS MOTIVOS, OS QUAIS VENHAM A OCORRER EM CONSEQÜÊNCIA 
// OU EM RELAÇÃO AO SOFTWARE , A SEU USO OU OUTRA FORMA DE NEGOCIAÇÃO/UTILIZAÇÃO. 
// 
// Esse software consiste de contribuições voluntárias e está sobre a licença
// MIT <http://www.opensource.org/licenses/mit-license.php>.
// 
////////////////////////////////////////////////////////////////////////////////

package br.mcaslib.collections
{
	import flash.events.Event;
	
	public class ListRemoteViewEvent extends Event
	{
		//--------------------------------------------------------------------------
		//
		//  Constants
		//
		//--------------------------------------------------------------------------
	     
	    /**
	     * The <code>ListRemoteViewEvent.LOAD_PAGE</code> constant defines the value of the
	     * <code>type</code> property of the event object for <code>loadPage</code> event.
	     * 
	     * @eventType loadPage
	     */
		public static const LOAD_PAGE: String = "loadPage"; 

	    /**
	     * The <code>ListRemoteViewEvent.LOADING_PAGE</code> constant defines the value of the
	     * <code>type</code> property of the event object for <code>loadPage</code> event.
	     * 
	     * @eventType loadPage
	     */
		public static const LOADING_PAGE: String = "loadingPage"; 
		
	    /**
	     * The <code>ListRemoteViewEvent.LOADED_PAGE</code> constant defines the value of the
	     * <code>type</code> property of the event object for <code>loadPage</code> event.
	     * 
	     * @eventType loadPage
	     */
		public static const LOADED_PAGE: String = "loadedPage"; 

		//--------------------------------------------------------------------------
		//
		//  Constructor
		//
		//--------------------------------------------------------------------------
		
	    public function ListRemoteViewEvent(type:String, bubbles:Boolean = false,
	                              cancelable:Boolean = false) {
	        super(type, bubbles, cancelable);
	    }
		
	    //--------------------------------------------------------------------------
	    //
	    //  Properties
	    //
	    //--------------------------------------------------------------------------
	    
		//----------------------------------
		//  index
		//----------------------------------

		/**
		 * The index zero-based of the first record that should be loaded
		 */
	    public var index: Number = -1;

		//----------------------------------
		//  maxLength
		//----------------------------------

		/**
		 * The max length of records that should be loaded
		 */	    
	    public var maxLength: Number = -1;
	    
		//----------------------------------
		//  calculateRealLenght
		//----------------------------------

	    /**
	     * Inform it is necessary to calculate the real lenght
	     * os the list.
	     */
	    public var calculateRealLength: Boolean = false;

	    //--------------------------------------------------------------------------
	    //
	    //  Properties
	    //
	    //--------------------------------------------------------------------------

		public function copyFrom( event: ListRemoteViewEvent ):void {
			this.index = event.index;
			this.calculateRealLength = event.calculateRealLength;
			this.maxLength = event.maxLength;
		}
	}
}
